package br.ufrj.dcc.ad.systems;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import br.ufrj.dcc.ad.event.Event;
import br.ufrj.dcc.ad.interfaces.IFilaDeEventos;

public class FilaDeEventos implements IFilaDeEventos{
	private List<Event> eventos;
	/**
	 * Inicializa a fila de eventos.
	 */
	public FilaDeEventos() {
		eventos = new ArrayList<Event>();
	}
	@Override
	public void addEventoNaFila(Event evento) {
		eventos.add(evento);
		Collections.sort(eventos);
	}
	@Override
	public Event getProximoEvento() {
		return eventos.remove(0);
	}
	public Event seeProximoEvento(){
		if(eventos.size() == 0) return null;
		return eventos.get(0);
	}
	@Override
	public boolean isEmpty() {
		return eventos.isEmpty();
	}
	@Override
	public void clear(){
		eventos.clear();
	}
	public void addEventosNaFila(List<Event> events) {
		eventos.addAll(events);
		Collections.sort(eventos);
	}
	public List<Event> getEventos() {
		return eventos;
	}
}
